# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
# Contributor: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
# Contributor: Dale Blount <dale@archlinux.org>
# Contributor: Anders Bostrom <anders.bostrom@home.se>

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - mozconfig changes for ARM
#  - disable rust lto for v7

highmem=1

pkgbase=thunderbird
pkgname=(thunderbird)
pkgver=115.14.0
pkgrel=1
pkgdesc='Standalone mail and news reader from mozilla.org'
url='https://www.thunderbird.net/'
arch=(x86_64)
license=('MPL-2.0' 'GPL-2.0-only' 'LGPL-2.1-only')
depends=(
  glibc
  gtk3 libgdk-3.so libgtk-3.so
  mime-types
  dbus libdbus-1.so
  dbus-glib
  alsa-lib
  nss
  hunspell
  sqlite
  ttf-font
  libvpx libvpx.so
  zlib
  bzip2 libbz2.so
  botan2
  libwebp libwebp.so libwebpdemux.so
  libevent
  libjpeg-turbo
  libffi libffi.so
  nspr
  gcc-libs
  libx11
  libxrender
  libxfixes
  libxext
  libxcomposite
  libxdamage
  pango libpango-1.0.so
  cairo
  gdk-pixbuf2
  freetype2 libfreetype.so
  fontconfig libfontconfig.so
  glib2 libglib-2.0.so
  pixman libpixman-1.so
  gnupg
  json-c
  libcanberra
  ffmpeg
  icu libicui18n.so libicuuc.so
)
makedepends=(
  unzip zip diffutils python nasm mesa libpulse libice libsm
  rust clang llvm cbindgen nodejs-lts-iron lld
  gawk perl findutils libotr
)
options=(!emptydirs !makeflags !lto)
source=(https://archive.mozilla.org/pub/thunderbird/releases/$pkgver/source/thunderbird-$pkgver.source.tar.xz{,.asc}
        vendor-prefs.js
        distribution.ini
        mozconfig.cfg
        metainfo.patch
        org.mozilla.Thunderbird.desktop
        thunderbird-system-icu-74.patch # https://bugzilla.mozilla.org/show_bug.cgi?id=1862601
        0031-bmo-1873379-fix-libc++-18-ignore-tuple-harder.patch
        0032-bmo-1841919-llvm-18-variable-does-not-need-to-be-mutable.patch
        0033-bmo-1882209-update-crates-for-rust-1.78-stripped-patch-from-bugs.freebsd.org-bug278834.patch
        0034-bgo-936072-update-crates-for-rust-1.78-patch-from-bugs.freebsd.org-bug278989.patch
)
validpgpkeys=(
  14F26682D0916CDD81E37B6D61B7B526D98F0353 # Mozilla Software Releases <release@mozilla.com>
  4360FE2109C49763186F8E21EBE41E90F6F12F6D # Mozilla Software Releases <release@mozilla.com>
)

# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact foutrelis@archlinux.org for
# more information.
_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM

# Mozilla API keys (see https://location.services.mozilla.com/api)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact heftig@archlinux.org for
# more information.
_mozilla_api_key=16674381-f021-49de-8622-3021c5942aff

prepare() {
  cd $pkgname-$pkgver

  echo "${noextract[@]}"

  local src
  for src in "${source[@]}"; do
    src="${src%%::*}"
    src="${src##*/}"
    [[ $src = *.patch ]] || continue
    echo "Applying patch $src..."
    patch -Np1 < "../$src"
  done
  sed -e 's|73114a5c28472e77082ad259113ffafb418ed602c1741f26da3e10278b0bf93e|a88d6cc10ec1322b53a8f4c782b5133135ace0fdfcf03d1624b768788e17be0f|' \
    -i third_party/rust/mp4parse/.cargo-checksum.json
  sed -e 's|880c982df0843cbdff38b9f9c3829a2d863a224e4de2260c41c3ac69e9148ad4|239b3e4d20498f69ed5f94481ed932340bd58cb485b26c35b09517f249d20d11|' \
    -i third_party/rust/bindgen/.cargo-checksum.json

  # Make icon transparent
  sed -i '/^<rect/d' comm/mail/branding/thunderbird/TB-symbolic.svg

  printf "%s" "$_google_api_key" >google-api-key
  printf "%s" "$_mozilla_api_key" >mozilla-api-key
  cp ../mozconfig.cfg .mozconfig
  sed "s|@PWD@|${PWD@Q}|g" -i .mozconfig

  if [[ $CARCH == "armv7h" ]]; then
    echo "ac_add_options --disable-elf-hack" >> .mozconfig
    MAKEFLAGS="-j4"
    # disable hard-coded LTO
    sed -i '/cargo_rustc_flags += -Clto/d' config/makefiles/rust.mk
    sed -i '/RUSTFLAGS += -Cembed-bitcode=yes/d' config/makefiles/rust.mk
    # increase codegen-units due to RAM constraints
    sed -i 's/codegen-units=1/codegen-units=16/' config/makefiles/rust.mk
  fi

  echo 'ac_add_options --enable-optimize="-g0 -O2"' >> .mozconfig
  echo "mk_add_options MOZ_MAKE_FLAGS=\"${MAKEFLAGS}\"" >> .mozconfig

  export MOZ_DEBUG_FLAGS=" "
  export CFLAGS+=" -g0"
  export CXXFLAGS+=" -g0"
  #export LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
  export LDFLAGS+=" -Wl,--no-keep-memory"
  export RUSTFLAGS="-Cdebuginfo=0"
  CFLAGS=${CFLAGS/-fstack-clash-protection}
  CXXFLAGS=${CXXFLAGS/-fstack-clash-protection}
}

build() {
  cd $pkgname-$pkgver
  if [[ -n "${SOURCE_DATE_EPOCH}" ]]; then
    export MOZ_BUILD_DATE=$(date --date "@${SOURCE_DATE_EPOCH}" "+%Y%m%d%H%M%S")
  fi
  export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none
  export MOZBUILD_STATE_PATH="${srcdir}/mozbuild"

  # malloc_usable_size is used in various parts of the codebase
  CFLAGS="${CFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"
  CXXFLAGS="${CXXFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"

  ./mach configure
  ./mach build
  ./mach buildsymbols
}

package_thunderbird() {
  optdepends=(
    'hunspell-en_us: Spell checking, American English'
    'libotr: OTR support for active one-to-one chats'
    'libnotify: Notification integration'
  )

  cd $pkgname-$pkgver
  DESTDIR="$pkgdir" ./mach install

  install -Dm 644 ../vendor-prefs.js -t "$pkgdir/usr/lib/$pkgname/defaults/pref"
  install -Dm 644 ../distribution.ini -t "$pkgdir/usr/lib/$pkgname/distribution"
  install -Dm 644 ../org.mozilla.Thunderbird.desktop -t "$pkgdir/usr/share/applications"
  install -Dm 644 comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml \
    "$pkgdir/usr/share/metainfo/net.thunderbird.Thunderbird.appdata.xml"

  for i in 16 22 24 32 48 64 128 256; do
    install -Dm644 comm/mail/branding/thunderbird/default${i}.png \
      "$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/org.mozilla.Thunderbird.png"
  done
  install -Dm644 comm/mail/branding/thunderbird/TB-symbolic.svg \
    "$pkgdir/usr/share/icons/hicolor/symbolic/apps/thunderbird-symbolic.svg"

  # Use system-provided dictionaries
  ln -Ts /usr/share/hunspell "$pkgdir/usr/lib/$pkgname/dictionaries"
  ln -Ts /usr/share/hyphen "$pkgdir/usr/lib/$pkgname/hyphenation"

  # Install a wrapper to avoid confusion about binary path
  install -Dm755 /dev/stdin "$pkgdir/usr/bin/$pkgname" <<END
#!/bin/sh
exec /usr/lib/$pkgname/thunderbird "\$@"
END

  # Replace duplicate binary with wrapper
  # https://bugzilla.mozilla.org/show_bug.cgi?id=658850
  ln -srf "$pkgdir/usr/bin/$pkgname" \
    "$pkgdir/usr/lib/$pkgname/thunderbird-bin"
}

_package_i18n() {
  pkgdesc="$2 language pack for Thunderbird"
  depends=("thunderbird>=$pkgver")
  install -Dm644 thunderbird-i18n-$pkgver-$1.xpi \
    "$pkgdir/usr/lib/thunderbird/extensions/langpack-$1@thunderbird.mozilla.org.xpi"
}

_languages=(
  'af     "Afrikaans"'
  'ar     "Arabic"'
  'ast    "Asturian"'
  'be     "Belarusian"'
  'bg     "Bulgarian"'
  'br     "Breton"'
  'ca     "Catalan"'
  'cak    "Kaqchikel"'
  'cs     "Czech"'
  'cy     "Welsh"'
  'da     "Danish"'
  'de     "German"'
  'dsb    "Lower Sorbian"'
  'el     "Greek"'
  'en-GB  "English (British)"'
  'en-US  "English (US)"'
  'es-AR  "Spanish (Argentina)"'
  'es-ES  "Spanish (Spain)"'
  'et     "Estonian"'
  'eu     "Basque"'
  'fi     "Finnish"'
  'fr     "French"'
  'fy-NL  "Frisian"'
  'ga-IE  "Irish"'
  'gd     "Gaelic (Scotland)"'
  'gl     "Galician"'
  'he     "Hebrew"'
  'hr     "Croatian"'
  'hsb    "Upper Sorbian"'
  'hu     "Hungarian"'
  'hy-AM  "Armenian"'
  'id     "Indonesian"'
  'is     "Icelandic"'
  'it     "Italian"'
  'ja     "Japanese"'
  'ka     "Georgian"'
  'kab    "Kabyle"'
  'kk     "Kazakh"'
  'ko     "Korean"'
  'lt     "Lithuanian"'
  'ms     "Malay"'
  'nb-NO  "Norwegian (Bokmål)"'
  'nl     "Dutch"'
  'nn-NO  "Norwegian (Nynorsk)"'
  'pa-IN  "Punjabi (India)"'
  'pl     "Polish"'
  'pt-BR  "Portuguese (Brazilian)"'
  'pt-PT  "Portuguese (Portugal)"'
  'rm     "Romansh"'
  'ro     "Romanian"'
  'ru     "Russian"'
  'sk     "Slovak"'
  'sl     "Slovenian"'
  'sq     "Albanian"'
  'sr     "Serbian"'
  'sv-SE  "Swedish"'
  'th     "Thai"'
  'tr     "Turkish"'
  'uk     "Ukrainian"'
  'uz     "Uzbek"'
  'vi     "Vietnamese"'
  'zh-CN  "Chinese (Simplified)"'
  'zh-TW  "Chinese (Traditional)"'
)
_url=https://archive.mozilla.org/pub/thunderbird/releases/$pkgver/linux-x86_64/xpi

for _lang in "${_languages[@]}"; do
  _locale=${_lang%% *}
  _pkgname=thunderbird-i18n-${_locale,,}

  pkgname+=($_pkgname)
  source+=("thunderbird-i18n-$pkgver-$_locale.xpi::$_url/$_locale.xpi")
  eval "package_$_pkgname() {
    _package_i18n $_lang
  }"
done

# Don't extract languages
noextract=()
for _src in "${source[@]%%::*}"; do
    case "$_src" in 
      *.xpi) noextract+=("$_src") ;;
    esac
done

sha512sums=('b12e1302d6be94dd88bee6dd069d3fec944bfce95e1afc1d72c14cc188d952fd5a85f0e70575317250701ac89498d876f3384b022957689fabcef61ad7d78c29'
            'SKIP'
            '6918c0de63deeddc6f53b9ba331390556c12e0d649cf54587dfaabb98b32d6a597b63cf02809c7c58b15501720455a724d527375a8fb9d757ccca57460320734'
            '5cd3ac4c94ef6dcce72fba02bc18b771a2f67906ff795e0e3d71ce7db6d8a41165bd5443908470915bdbdb98dddd9cf3f837c4ba3a36413f55ec570e6efdbb9f'
            'a34dd97954f415a5ffe956ca1f10718bd164950566ceba328805c2ccbb54ed9081df07f2e063479bf932c4a443bb5b7443cca2f82eea3914465ed6e4863e0c0e'
            '7e43b1f25827ddae615ad43fc1e11c6ba439d6c2049477dfe60e00188a70c0a76160c59a97cc01d1fd99c476f261c7cecb57628b5be48874be7cf991c22db290'
            'fffeb73e2055408c5598439b0214b3cb3bb4e53dac3090b880a55f64afcbc56ba5d32d1187829a08ef06d592513d158ced1fde2f20e2f01e967b5fbd3b2fafd4'
            '9897cb0ababc8e1a0001c4e1f70e0b39f5cdb9c08c69e3afd42088dfd001aa1fc6996cd83df0db1fb57ee0a80686c35c8df783108408dbe9191602cddd1e3c65'
            '63de65c2d98287dea2db832a870764f621c25bf0c1353d16f8e68e8316e7554d2047b1c7bbb74a6c48de423f6201964491cd89564e5142066b6609a1aed941a7'
            '346fc7c2bcdf0708f41529886a542d2cf11a02799ef2a69dddfa2c6449b8bd7309033f3893f78f21c4ea0be3f35741e12b448977c966f2ae5a0087f9e0465864'
            '249706b68ce2450e35216b615b24b7640e75dd120d6d866fa8aab03d644fa6c40b5e129740874d96608bd0c187b6f2456d0d4310729d26d4740d1eca753be4fd'
            '7bc7969fe03e5cee0ddb844f7917154afdc4a4df8b8af9c8191180a6813faca9f310cf6b689ec358bc45af12fa3ec386cd46cb9feecf9b38557e36552aa0572d'
            '584013d7b6eea794448f4764c17de7b989155ca782f602948a2d0f745c4344954daacd35327bcb85f9e9cad99d5b917f748d47a4805cef171d806bd8211aa591'
            '2767eef517e451aedfca4b9a8e254f4388afc1c6021cdc301bd56513073688a63ceb7891aa5bb9dd6c83ae2d5f9078e9b832bdf3e761c88e2379076d15baf519'
            'a01c2d85389e7ca86af4bcc73565bca9faea308a77c16457dcb981492433a177761dd20daf3224ee64c7a527408265ae53fdfb2c2a5b4cfa0df8d2325240ca3a'
            '58f519048e3a5f19e227ace477df49b64ddd622c9ea31e5e819d4efd6bc9667d74414abd1178d356ebb021d11de14cfcda125a1a5ecfc080073c5bded074cef9'
            '09b931dc2469bb3df21cc85db53c00407d10c067b957ea63cfb921b89bbd4157f075b72abf8abec923c7c553f8e0c64c42b6d98d96b1c9bb8b27b53688dc99d3'
            '992cf5337f6d6b5761ad7332f11b0bba14eb962bff0c5683ca3f01a064ff13d76361adf177953a9091d48277d59f2263aa4aebedd450ca2b158a692a06e08ab6'
            'ca23e0a7f5df0e167c2cb293e1d5f3e8bf7af55de3233107b73c297c79121c2945da0fe470ea69bc2512de5dd9a967f674cd75945ff603769cc356d3cf3569b7'
            '0c15a5a730f9ad8044004b9caa519da63af0312ef34edd818d691f9310c83ee338ead82ced902f340925c21dd29cf47dd19e766bbb9282dc76dc0944f3f707e7'
            'c5fafb40529893b7a84f044fd69b548ef627ff861f63ba3c14411b860471bbdb308b659e033705afde937e99c28e0d80f7a2e456d305a5621662b872e0dc17bd'
            '4dc1c483f79e0b0986dbf7b6ef9dfc3e939b7621b0418b9f704d99cbcea18f97dfe3843b4d204f673e62050bbfed2fca84c7545f6baaa6c25d532f21d0c0b0ba'
            'fded4ba16f3275e0063daf590696590dd7bfa2f9e687666df4e351a864808aa890219f7883e8aee53a299ee6231173ec19e834fdb256a45f0871a329f6bbe360'
            '63efe71b9ae267b0afdbc8be55e2f66f4b0b86a1eec31df760dcc57ee8e6f11865712bfb5784d4760ec6d75314ac3acae805d105b08c54d0ea619b898da6428a'
            'd6c341b1e7283c756b98e9040dafc4c71743d4d4254b6a6e13664a14b4897058334554975e06905f99d0cb9457fb36234413733eee5059b370ab4652d27e25c4'
            'ecd1d5896a145b925af0d80255172866e163568822bf306864eabd1c577f002fec022ddacf2cc8212f29287aa56a81448557d4e4c619085db5c41b5a87b2b1d4'
            'a64e83decc87c5050e9b3557eda80b33cd076d86f9180d6d33e4068e3aa30c7093f0304a92e4e9c7728809ce62faef1a964053784953f249304483f0df9b7ff2'
            'b8b6130304dcc2e7288d455964ba5a9fe1519e63869482750f71825b5834f9a230e3f314f8b932704607a91f2ce4766005d52a1ca0d686449249faa4b59897a0'
            'ac84f6a4a4e6a7d026b888da9a23660c048da5993b09059c41542bd699ab8e3fc4dd0d5f3e0b2a49013ce965340b00789bbd8883a4c95e792af7ec1a9b53252e'
            'c7dd7d7f92d5e7146f87925e11e61222acf564466ba5fbf9b56761db7f4f5f5d5e91aa40a860d6095f9e484f5e681188a41227559516fdb97ac39966dab0d491'
            'b150c1fbb52ad4f2cbbe0ef5a17898324a8c111a6db7bbaa621af478b7dc8ec9a2dcc0abee50c4e38d377964e8f49e2943b9617e81126ce7a3ae73f4dcd794d2'
            '89a656d9adcd98025c846db4e744f1c44e8f055afe30ae19af32d515133a00e6986b1718eedf0e58cf2c8e116ebb615bd11c9773eaf0e9cc0ad71da54df7aff9'
            '5c2658f35998147d1e059cee9dde2b239be116ee9805621ad01056c13e39c57c8f23f30e02406d071857c34e19df2e3a313be609bf69c616c1d4a935987cf9af'
            '6e8d1384030b8c45ae6222faef3949b0502d660c2a61bb1951af8dc800fadd663ad588f789836587240947a909d4abe331b059f9b680307e76520237543ae3c0'
            '269ace04c16c40d65c44dabe11192756574efd4989f854496d7b0bfabadcfddd14e5fbd051303a63c54eca6622dceaa63df7418bd1b3ee37e06553a7ed1ba942'
            '5db9010df40ead2755786f35fef01c710827733523135fa131bb6982aec65fec6d33ccb1ec3bb02ad2e8f6d408a4f690442fb80a4dd3b9630c8efee0cb32335d'
            '0d3075c4c90bc9c0473f79aea4a83b6e2b58fba18b5d5821c459803020955a3ea44114b96f897410ea51cbc5d9cf5fa006a7c8c34c29ad0caaf0aa0a0316f3f9'
            '1386e78162fba0e7476619038a2b729142967faef8c8767d53fe2c94446719e90db49416f2ec56fa6d9053d52a89a9493d15a9298bb1acc29b3bf4a36731632d'
            '71892ecde40003ebca1974336a08c63965083c98d18012effc1bc8912cca855c7b02c57f86a1f947e01e6d1f1a993d9586f71244625b8fe40b09fb4135569789'
            'fd7b9f632768f05a4e48c5996542191382d6530cff1fae1785cd6a8e6d48425a029b0cbf6a3b345f8b356fab3605bb00a64a88b6fae58949f2811b22735f534c'
            '9fe042c385bc89a3b2f75f8f0fc4b95823136e6c0c64e763d783218498caadea36e5c23b2898390ea14ff47743cb61528854f7e7171ac815557ea9cfad15e9b5'
            '72e50ba136d89eda9f97990fc9ba193f81cf7a84c00b40116a5fe6c668823a95e38d47a0ab452f00dbb03855eea17882f88d8ff25676fe0ba720c90202316a78'
            '5dd005d447f02583a4d42bfee616eee92f74f42490343831842e58b5a1d8559f68605d93b8c30626b07dc83939b0e97d472ed6f6f7bc9ee52f43008edc143b06'
            '808832a2d44e9ef4744222357bcf07f019f278eb69a0c77cfd420f924ad23749414e99ed48ec0af89ac5e2df202e522ed68de51e8bf97b492f6f499a3be7c5be'
            '15d3e85812b78f120b1cb13feadd1a465b5cc91db2888a602bd68b3180d5631018114ecb99c6819df2a6626cf736add59eaf01dde585fede8f55fb173e39db40'
            '359fabee10e9e5bb2130d918782c14007a70f2f912a1e683274ddb723cf10ce9fb256e6155ef299fa7bef5d85608a4c56faf91f951d269179c755068cb3d6583'
            'e5c161f7b3814c7d9a3ccd0f858406e9d625e950fd812482955f74eec291d50cb7a4cf06577fb286d2f4742f5c6d8afe7663024b3f4ffbba0d813e269bdf0e6f'
            'e1f2621207d7e4e2656c568de5953ffe6042d1490dc66fa96438ed2b5cb8cd946ffcd152f903a33f29b567a548f71b3c2426dc5b49d1dd4d227ddb3d18e6a9bd'
            'd0c0b6f17466d935170e873cbf8f28c9b685f7e1c79ba17d19b32cd03d8d727763b472038a8cafbfac7326f2d535b1707baa256c6f4ed86b99c58fcc653b5a80'
            'a6d0b22d607d4f9688336e9fa983d9d6664208645948c38d7565542d7e7003a0e8208d12bb768d84848721ef26cca6529bdac828d2713ec3c058fbf24bf9afde'
            'cb89874847428199071c9f1fc93cc7dbba2d061c427987ca5b7eb06d404fc149653feb2e2699e7a5fd9c32840a8d6a86470e4bdce103aa54e36bca4c66bc8c89'
            '46f86a6b7e0f765cf62e4fcc1f79a55afe005a6b0fe532a1ac58099f550b6e726ff271c9e0833d1dc3880aa5e9cf86c78a759d3d83a2a2d022d1147c948de157'
            '6577ee7d014b809a3a1d41edd57ade0fbac8743c545fc7fcbdd7641f8f8773a060d9f03e9e0472d32a2031d15cb8c00a4594992b0006e9e76d2e1f4133f4354f'
            '7aa9ac637b3b8e087baae7046e437842f871324f883a94fce17f8efc2ce688cbc648687ba77c877c4beecf4dcff3147a849c11b434dae15a313974b53e845b45'
            '135f129f2b72d99599ceb5c92f03d96dcef28465717eaaefd1a12a4f8617ede060150cb18caf7ae6ed6053210c32bba0bb5e742b5f99a20f9a1eaf1d86eca37b'
            '4a54b2254d57c1947fb27728a173270a9f9504c4bca25e2e700c602e6b5b8b9d7538bbd4303c062a55b23cbfc8204975d9699dc82515a80e192295e75898acb5'
            '728d23c27bb03fcda6c60f83623ac7e66b4e7788767d657def85e976b5eb578a0b0a03df5baa4688e39db4c9d7fe0c57dd7bb1a4baff44c8c5776071d393125b'
            '623643cb84760e98a8265b617ac709d03c8e301f34837256b8c4a06e1a918656b1a90052d97b67e2a3ba23e0e499e8fc3285cdd558edb4b3e0ad0429f699cde3'
            '7419835e5a02afa24780de1300f606fc2cb4c4872423f5a91ddbdfe6c2731f962adb769869f4e02381d5593bbf3683168eff562b6a2ab781a41a90ac535d6d23'
            '18aeb54f46a35e9644bccf6035cfdad6e0448674f38c934857c9184f75ede1e74130e3bab3017b22d286d129680849622cc11a049859a1d14d7df8bf3e62ac8d'
            '8b72e0772f1c7c4aa00fcd760bc04a3dae69335769d54e9368262fbded96ebf7308a671e46cbb6e921a043d6e297aa77a4510553fd5844f9ad742808b964a476'
            'f02addfac0f7e11c43b2f43e15d20f5e877c5300be6a5c23ae9d450096f064ebf597319228f81c7d5c6f598805050aff0431025600874e07a8b512e88fd3d083'
            'f94a708b8c08c416ee1e39207c32fff7c27749bd9025faa576a72493025786495851557251feccfa67fffbfd4a8cfeefaf25fc8a87c295af7be68b1d37d1e272'
            'f109e8d65417dbd3b0d8f5f37d1c5938d37a09f0387ecd75a690b88d365c56e231ff045010e0d6bfa1ec2c26898fd63a0577d207f837475df558746c46031646'
            'c9acc7a1ad4cb54868b0a66c0cf2cd6a3460acd6caee3c33331d0cd1894fe9142f1d5c3238c2b481bd80a390dc95d2c8feb513a2457ac86e28910d8ac968a4db'
            '15bff4ec3b1bf8045a77cb7c5df6b07c8f0a4cf559490db126218b591e691fcc7cb26b3407ef16518d05609728bfa88f129f6df151133fb9e56fcb14d616bc4f'
            '10166e70d170ca698d4354b2a60d3ce962281e6e41f12e713d18da269562571ce069b8464fc91777ff8c9c2674b1581d58edc36e80b6bc242d455e177f43207e'
            '0c3c68ff09a02c01fe05d5e03598b551a91f025ba1366cecd443d6c54995a0334a89d746844698e6e1155a5acc1a857e6b5b3068c23f127047a72b29110955f1'
            '911034e20151a17e787bc582668bc80323ff72503c0b905e4817a369f05dddf3f0c008e17193f415ae3625339265011f944a9002a1119a89205460a74834c0a4'
            'e5e656302cff207b53de54d7d090917193286c08ab584755ae3a7942a21beaddd24c02fa449640bf70f3fa2d5a0aeb3e2e8bbecf0d636c1355b4b38d0ab8f826'
            'ecc0e849166198def15a50aac46855be61acb65fbc63e74eb102293ce62e1320475b6700195feba835846130d597a9301455c4b77ed06a3396b5943be5a1590f'
            'f05bc3ca4e77a72909c14024fb801b67eb928ca0ea6dc7b8cc6a318e08ac6636f1e24d4584ef40d7f34cf012833f627479cef2abf730dbcdcb0b835375e40f60'
            '536370b0615b373ee266bf39f434ee5ebec15d535e366fae99a68a2cc7ad75bd44f5abe41af7310b1d5e2e0762e783e4bb88fdd2c9de66f46ccab9c1e87f698e'
            'eb4e1894f408b7d90982a447183c3dbd702c654950c772c3adf6ac90be23655e6d6426210542de70682ba70797c247e6271bc7867fe2a8dc04ba8a63ab0e94c0'
            '661acf4f1eeb803eabb4c5b8f9cfbbb6bd71eb456860fe23debf0de889d204aba490d545334098c8fd302de29b6adb5f1a75c4bd96e3fbd13f3dceec358a15ad')

# vim:set sw=2 et:
